Protecting Software Code by Guards
نویسندگان
چکیده
Protection of software code against illegitimate modifications by its users is a pressing issue to many software developers. Many software-based mechanisms for protecting program code are too weak (e.g., they have single points of failure) or too expensive to apply (e.g., they incur heavy runtime performance penalty to the protected programs). In this paper, we present and explore a methodology that we believe can protect program integrity in a more tamper-resilient and flexible manner. Our approach is based on a distributed scheme, in which protection and tamper-resistance of program code is achieved, not by a single security module, but by a network of (smaller) security units that work together in the program. These security units, or guards, can be programmed to do certain tasks (checksumming the program code is one example) and a network of them can reinforce the protection of each other by creating mutual-protection. We have implemented a system for automating the process of installing guards into Win32 executables. It is because our system operates on binaries that we are able to apply our protection mechanism to EXEs and DLLs. Experimental results show that memory space and runtime performance impacts incurred by guards can be kept very low (as explained later in the paper).
منابع مشابه
Optimal Guard Synthesis for Memory Safety
This paper presents a new synthesis-based approach for writing low-level memory-safe code. Given a partial program with missing guards, our algorithm synthesizes concrete predicates to plug in for the missing guards such that all buffer accesses in the program are memory safe. Furthermore, guards synthesized by our technique are the simplest and weakest among guards that guarantee memory safety...
متن کاملTamper Protection of Online Clients through Random Checksum Algorithms
We describe a new purely software-based, self-checking mechanism designed to prevent tampering of client programs in client/server-applications like online-games, peer-to-peer networks, or online auction systems. Our mechanism consists of randomly creating checksum algorithms at the server. The checksum algorithms are integrated into autonomous short-lived software code, called Mobile Guards, w...
متن کاملModel-Checking In-Lined Reference Monitors
A technique for elegantly expressing In-lined Reference Monitor (IRM) certification as model-checking is presented and implemented. In-lined Reference Monitors (IRM’s) enforce software security policies by in-lining dynamic security guards into untrusted binary code. Certifying IRM systems provide strong formal guarantees for such systems by verifying that the instrumented code produced by the ...
متن کاملOn Guard: Producing Run-Time Checks from Integrity Constraints
Software applications are inevitably concerned with data integrity, whether the data is stored in a database, files, or program memory. An integrity guard is code executed before a data update is performed. The guard returns “true” just if the update will preserve data integrity. The problem considered here is how integrity guards can be produced automatically from data integrity constraints. W...
متن کاملEÆcient \reversibility" with guards and choice
We describe reversibility mechanisms incorporated into a native code Forth used an an intermediate language for a B-GSL compiler. In contrast to our previous work, information preservation is limited to what is needed to implement the B-GSL semantics for non-deterministic choice and guard. Design choices are discussed with reference to the Pentium architecture. The use of guards and choice in F...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001